From 563b80d43491223aed3512c31eaa8e069ea3c076 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Timm=20B=C3=A4der?= Date: Fri, 11 Jan 2019 17:46:12 +0100 Subject: [PATCH] label: Skip updating link state if we have no layout This can happen whenever the ::activate-link handler sets different markup on the label, causing all links to be recreated. In this case, the GtkLabelLink* passed to emit_activate_link is garbage after the g_signal_emit call and we shouldn't try to do anything with it. Fixes #1498 --- gtk/gtklabel.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/gtk/gtklabel.c b/gtk/gtklabel.c index 7ca9ad7cf3..1d4223aada 100644 --- a/gtk/gtklabel.c +++ b/gtk/gtklabel.c @@ -6173,6 +6173,11 @@ emit_activate_link (GtkLabel *label, GtkStateFlags state; g_signal_emit (label, signals[ACTIVATE_LINK], 0, link->uri, &handled); + + /* signal handler might have invalidated the layout */ + if (!priv->layout) + return; + if (handled && priv->track_links && !link->visited && priv->select_info && priv->select_info->links) { -- 2.30.2